package com.hx.netty.chat.protocol;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


/**
 * @author Huathy
 * @date 2021-10-24 21:47
 * @description 聊天协议
 */
public enum IMP {
    /**
     * 系统消息
     */
    SYSTEM("SYSTEM"),
    /**
     * 登录指令
     */
    LOGIN("LOGIN"),
    /**
     * 登出指令
     */
    LOGOUT("LOGOUT"),
    /**
     * 聊天消息
     */
    CHAT("CHAT"),
    /**
     * 鲜花指令
     */
    FLOWER("FLOWER");

    /**
     * 指令名称
     */
    private String name;

    IMP(String name) {
        this.name = name;
    }

    /**
     * 获取 指令名称
     */
    public String getName() {
        return this.name;
    }

    /**
     * 判断消息内容自己是否能够解析
     *
     * @param imp im指令
     * @return bool
     * 采取责任链模式
     */
    public static boolean isIMP(String imp) {
        // 用一句正则表达式就可以判断
        return imp.contains("^\\[(SYSTEM|LOGIN|LOGOUT|CHATFLOWER)\\]");
    }
}
